// Decompiled on 周六 2月 22 19:31:49 CST 2025 with Zomboid Decompiler v0.1.3 using Vineflower.
package zombie.core.math;

import org.joml.Vector3f;

public class Vector3 extends Vector3f {
    public Vector3() {
    }

    public Vector3(float x, float y, float z) {
        super(x, y, z);
    }

    public Vector3(org.lwjgl.util.vector.Vector3f vector3f) {
        super(vector3f.x, vector3f.y, vector3f.z);
    }

    public Vector3(Vector3 v) {
        super(v.x, v.y, v.z);
    }

    public static org.lwjgl.util.vector.Vector3f addScaled(
        org.lwjgl.util.vector.Vector3f vector3f2, org.lwjgl.util.vector.Vector3f vector3f1, float _float, org.lwjgl.util.vector.Vector3f vector3f0
    ) {
        vector3f0.set(vector3f2.x + vector3f1.x * _float, vector3f2.y + vector3f1.y * _float, vector3f2.z + vector3f1.z * _float);
        return vector3f0;
    }

    public static org.lwjgl.util.vector.Vector3f setScaled(org.lwjgl.util.vector.Vector3f vector3f1, float _float, org.lwjgl.util.vector.Vector3f vector3f0) {
        vector3f0.set(vector3f1.x * _float, vector3f1.y * _float, vector3f1.z * _float);
        return vector3f0;
    }

    public org.lwjgl.util.vector.Vector3f Get() {
        org.lwjgl.util.vector.Vector3f vector3f = new org.lwjgl.util.vector.Vector3f();
        vector3f.set(this.x, this.y, this.z);
        return vector3f;
    }

    public void Set(org.lwjgl.util.vector.Vector3f vector3f) {
        this.x = vector3f.x;
        this.y = vector3f.y;
        this.z = vector3f.z;
    }

    public Vector3 reset() {
        this.x = this.y = this.z = 0.0F;
        return this;
    }

    public float dot(Vector3 vec) {
        return this.x * vec.x + this.y * vec.y + this.z * vec.z;
    }

    public Vector3 cross(Vector3 vec) {
        return new Vector3(this.y() * vec.z() - vec.y() * this.z(), vec.z() * this.x() - this.z() * vec.x(), this.x() * vec.y() - vec.x() * this.y());
    }
}
